package core

import (
	"goim/server/system/global"
	"goim/server/system/initialize"

	"go.uber.org/zap"
)

func Run() {

	global.JLZS_VP = Viper() // 初始化Viper
	global.JLZS_LOG = Zap()  // 初始化zap日志库
	zap.ReplaceGlobals(global.JLZS_LOG)
	global.JLZS_DB = initialize.Gorm() // gorm连接数据库
	initialize.Timer()
	initialize.DBList()
	if global.JLZS_DB != nil {
		initialize.RegisterTables() // 初始化表
		// 程序结束前关闭数据库链接
		db, _ := global.JLZS_DB.DB()
		defer db.Close()
	}
	if global.JLZS_CONFIG.System.UseRedis == true {
		// 初始化redis服务
		initialize.Redis()
	}
	if global.JLZS_CONFIG.System.UseCache == true {
		// 初始化cache服务
		initialize.Cache()
	}
	initialize.Router()
}
